@meniga/dates
Dates is a utility library for working with dates and date locales. It's basically a wrapper for moment js right now but is abstracted so that we can easily switch 3rd party libraries if we want).
Exports
Date utilities
dates(date = null, format = null, strict = null)
Wrapper for moment(date, format, strict) or moment() if date is null
maxDate
Wrapper for moment.max
minDate
Wrapper for moment.min
formatDate(date, format, parseFromat, stripTime)
Wrapper for moment(date, parseFormat).format(format). If stripTime is given, the timestamp from the date object will be removed before formatting.
isSameDate(date, compareDate, dateGrouping)
Wrapper for moment(date).isSame(compareDate, dateGrouping)
isBeforeDate(date, compareDate, dateGrouping)
Wrapper for moment(date).isBefore(compareDate, dateGrouping)
isAfterDate(date, compareDate, dateGrouping)
Wrapper for moment(date).isAfter(compareDate, dateGrouping)
isSameOrBeforeDate(date, compareDate, dateGrouping)
Wrapper for moment(date).isSameOrBefore(compareDate, dateGrouping)
isSameOrAfterDate(date, compareDate, dateGrouping)
Wrapper for moment(date).isSameOrAfter(compareDate, dateGrouping)
isValidDate(date)
Wrapper for moment(date).isValid()
stripTimeFromDate(date)
Removes timestamp information from the date object
getWeekDayInCorrectFormat(format, date)
Formats a weekday in the grammatically correct custom format as defined in the locale settings for moment
getDaysLeft(date)
Returns the day difference between today and the given day
getDatesFromPeriod(period, includeCurrentMonth)
Meniga has a concept of period which is defined as:
0 = This month, [1-12] = Last X months, 'thisYear' = This year, 'lastYear' = Last year
This function gives you an object that includes the period itself, and the start and end dates for the given period. If includeCurrentMonth is true the end date will be the current month, otherwise it will be the last completed month.
Locale utilities
setLocale(locale, config)
Wrapper for moment.locale(locale) and moment.updateLocale(locale, config)
weekdaysShort(day)
Wrapper for moment.weekdaysShort(day)
weekdays(day)
Wrapper for moment.weekdays(day)
months(month)
Wrapper for moment.months(month)
monthsShort(month)
Wrapper for moment.monthsShort(month)
getLocaleObject
Returns a locale object intended for d3 use that includes the following:
{
'periods': ['AM', 'PM'],
'days': moment.weekdays(),
'shortDays': moment.weekdaysShort(),
'months': moment.months(),
'shortMonths': moment.monthsShort(),
}
Example usage:
import { getLocaleObject } from '@meniga/dates'
import { timeFormatDefaultLocale } from 'd3-time-format'
const locale = getLocaleObject()
timeFormatDefaultLocale(locale)